package com.linewell.aop;

import com.linewell.annotation.SystemLogAop;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

/**
 * @Title: license-215
 * @description:
 * @author: hyuhuang@linewell.com
 * @since:2018/10/24
 */
//定义切面类
@Aspect
@Component
//@Order(1)标记切面类的处理优先级,i值越小,优先级别越高.PS:可以注解类,也能注解到方法上
public class SystemLog {
    /**
     * <p>Discription:[后置通知，扫描com.linewell包及此包下的所有带有SystemLogAop注解的方法]</p>
     * @param joinPoint 前置参数
     * @param SystemLogAop 自定义注解
     * @author:[全冉]
     */
    @After(("execution(* com.linewell.*.*(..)) && @annotation(systemLogAop)"))
    public void doAfterAdvice(JoinPoint joinPoint, SystemLogAop systemLogAop) {
        System.out.println("=========================================用户操作日志-后置通知开始执行......=========================================");
        String value = systemLogAop.value();
        System.out.println("=========================================用户操作日志-后置通知结束执行......=========================================");
    }
}
